<template>
    <template v-for="item, index in menuList" :key="index">
        <!-- 一级导航 => el-menu-item 直接将菜单项放到el-menu -->
        <el-menu-item v-if="!item.children" :index="item.path">
            <el-icon v-if="item.icon">
                <component :is="item.icon"></component>
            </el-icon>
            <span>{{ item.label }}</span>
        </el-menu-item>

        <!-- 二级导航 =>  -->
        <el-sub-menu v-else :index="item.path">
            <template #title>
                <el-icon v-if="item.icon">
                    <component :is="item.icon"></component>
                </el-icon>
                <span>{{ item.label }}</span>
            </template>
            <!-- 二级导航菜单项(可能包含三级菜单) 直接将菜单项放到el-sub-menu  -->
            <MenuItem :menuList="item.children"></MenuItem>
        </el-sub-menu>
    </template>
</template>

<script>
// 封装递归组件时,需要给组件设置name属性 => 可以直接对应name名称使用组件自身
export default {
    name:"MenuItem",
    props:{
        menuList:{
            type:Array,
            required:true,
        }
    }
}
</script>

<style lang="scss" scoped></style>